<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h3 data-lake-id="lC8GN" id="lC8GN"><span data-lake-id="u1d0c2867" id="u1d0c2867">问题发现</span></h3>
  <p data-lake-id="ue1c7afdf" id="ue1c7afdf"><span data-lake-id="u5c699a6a" id="u5c699a6a">​</span><br></p>
  <p data-lake-id="u1fd022ae" id="u1fd022ae"><span data-lake-id="u7d2b2a8a" id="u7d2b2a8a">线上有一个反欺诈相关的定时任务执行连续多次失败：</span></p>
  <p data-lake-id="u57845d92" id="u57845d92"><span data-lake-id="u35543bd7" id="u35543bd7">​</span><br></p>
  <p data-lake-id="u60107ffa" id="u60107ffa"><img src="https://cdn.nlark.com/yuque/0/2023/png/5378072/1682304911735-e83f4e3c-c29c-4b9c-a795-f0ac770af6e7.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_42%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="u78d04a57" id="u78d04a57"><br></p>
  <p data-lake-id="udbda61cd" id="udbda61cd"><span data-lake-id="u8aab96e1" id="u8aab96e1">于是紧急排查日志，发现在任务执行的时间段，有大量报错：</span></p>
  <p data-lake-id="u79145680" id="u79145680"><span data-lake-id="u78b206b1" id="u78b206b1">​</span><br></p>
  <pre lang="java"><code>
Cause: ERR-CODE: [TDDL-4202][ERR_SQL_QUERY_TIMEOUT] Slow query leads to a timeout exception, please contact DBA to check slow sql. SocketTimout:12000 ms, 

</code></pre>
  <p data-lake-id="u9152e740" id="u9152e740"><br></p>
  <p data-lake-id="uf787f24d" id="uf787f24d"><span data-lake-id="u526d391c" id="u526d391c">在这个日志的上下文不远处就定位到这条慢SQL：</span></p>
  <p data-lake-id="u779015f8" id="u779015f8"><span data-lake-id="u322bd337" id="u322bd337">​</span><br></p>
  <pre lang="java"><code>
select  distinct buyer_id as buyerId, seller_id as sellerId  from fraud_risk_case  WHERE subject_id_enum = 'BUYER_SELLER_BOTH' and (buyer_id = ? or seller_id = ?  ) and product_type_enum = ?   order by id desc limit 100
</code></pre>
  <p data-lake-id="uabe2c357" id="uabe2c357"><br></p>
  <p data-lake-id="u9c4c812e" id="u9c4c812e"><span data-lake-id="u9163ed30" id="u9163ed30">这条SQL的主要目的是找到是否有买卖家之间存在关联关系的数据。</span></p>
  <p data-lake-id="u400f492a" id="u400f492a"><span data-lake-id="u07100ed9" id="u07100ed9">​</span><br></p>
  <p data-lake-id="u0f350134" id="u0f350134"><span data-lake-id="u519e5535" id="u519e5535">通过执行explain，我们看了一下执行计划：</span></p>
  <table data-lake-id="MY86K" id="MY86K" margin="true" class="lake-table" style="width: 500px">
   <colgroup>
    <col width="250">
    <col width="250">
   </colgroup>
   <tbody>
    <tr data-lake-id="u743934e2" id="u743934e2">
     <td data-lake-id="ue3a45265" id="ue3a45265">
      <p data-lake-id="u507d9a6f" id="u507d9a6f" style="text-align: left"><span data-lake-id="u7177fb30" id="u7177fb30" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">id</span></p></td>
     <td data-lake-id="udd93aafa" id="udd93aafa">
      <p data-lake-id="u907a2a87" id="u907a2a87" style="text-align: left"><span data-lake-id="uef8b00aa" id="uef8b00aa" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">1</span></p></td>
    </tr>
    <tr data-lake-id="u01202fcd" id="u01202fcd">
     <td data-lake-id="ubbc9da11" id="ubbc9da11">
      <p data-lake-id="u8d40b0c3" id="u8d40b0c3" style="text-align: left"><span data-lake-id="u31fe4455" id="u31fe4455" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">select_type</span></p></td>
     <td data-lake-id="u4ae0a367" id="u4ae0a367">
      <p data-lake-id="u58a259a3" id="u58a259a3" style="text-align: left"><span data-lake-id="u11e11fda" id="u11e11fda" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">SIMPLE</span></p></td>
    </tr>
    <tr data-lake-id="u3c3943c3" id="u3c3943c3">
     <td data-lake-id="ud833786e" id="ud833786e">
      <p data-lake-id="uc5b529e3" id="uc5b529e3" style="text-align: left"><span data-lake-id="u572b04c6" id="u572b04c6" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">table</span></p></td>
     <td data-lake-id="ubc5f74ed" id="ubc5f74ed">
      <p data-lake-id="ude93a765" id="ude93a765" style="text-align: left"><span data-lake-id="ub61954e9" id="ub61954e9" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">fraud_risk_case</span></p></td>
    </tr>
    <tr data-lake-id="u09d4bbdb" id="u09d4bbdb">
     <td data-lake-id="u4dc81909" id="u4dc81909">
      <p data-lake-id="u5b6de2d5" id="u5b6de2d5" style="text-align: left"><span data-lake-id="u1e45af1a" id="u1e45af1a" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">partitions</span></p></td>
     <td data-lake-id="u4e4dd245" id="u4e4dd245">
      <p data-lake-id="u622cb6a8" id="u622cb6a8" style="text-align: left"><em><span data-lake-id="ue5aeabfe" id="ue5aeabfe" class="lake-fontsize-9" style="color: rgb(153, 153, 153)">NULL</span></em></p></td>
    </tr>
    <tr data-lake-id="uec421570" id="uec421570">
     <td data-lake-id="uaa82a0d1" id="uaa82a0d1">
      <p data-lake-id="u344347e6" id="u344347e6" style="text-align: left"><strong><span data-lake-id="u02eaa3e3" id="u02eaa3e3" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">type</span></strong></p></td>
     <td data-lake-id="u42df00cf" id="u42df00cf">
      <p data-lake-id="u916c653f" id="u916c653f" style="text-align: left"><strong><span data-lake-id="ub80182d2" id="ub80182d2" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">index</span></strong></p></td>
    </tr>
    <tr data-lake-id="u361565e3" id="u361565e3">
     <td data-lake-id="u1f02e590" id="u1f02e590">
      <p data-lake-id="ucf4cb8f6" id="ucf4cb8f6" style="text-align: left"><span data-lake-id="u074cd662" id="u074cd662" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">possible_keys</span></p></td>
     <td data-lake-id="u6b2ddeb8" id="u6b2ddeb8">
      <p data-lake-id="u6bcece71" id="u6bcece71" style="text-align: left"><span data-lake-id="ubb7c3048" id="ubb7c3048" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">idx_byr_slr_product</span></p></td>
    </tr>
    <tr data-lake-id="u6543a7cc" id="u6543a7cc">
     <td data-lake-id="udb56be19" id="udb56be19">
      <p data-lake-id="u89f55ecd" id="u89f55ecd" style="text-align: left"><strong><span data-lake-id="ud8cbffa7" id="ud8cbffa7" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">key</span></strong></p></td>
     <td data-lake-id="u2956ff5a" id="u2956ff5a">
      <p data-lake-id="ue3c272e7" id="ue3c272e7" style="text-align: left"><span data-lake-id="uc1c3b18d" id="uc1c3b18d" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">idx_byr_slr_product</span></p></td>
    </tr>
    <tr data-lake-id="uaa427dc2" id="uaa427dc2">
     <td data-lake-id="u0702cc41" id="u0702cc41">
      <p data-lake-id="u03316bc7" id="u03316bc7" style="text-align: left"><span data-lake-id="u3d0ba0b0" id="u3d0ba0b0" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">key_len</span></p></td>
     <td data-lake-id="u8d5cd75b" id="u8d5cd75b">
      <p data-lake-id="u70d4eb24" id="u70d4eb24" style="text-align: left"><span data-lake-id="u40769908" id="u40769908" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">1546</span></p></td>
    </tr>
    <tr data-lake-id="u9af82798" id="u9af82798">
     <td data-lake-id="u06fd8981" id="u06fd8981">
      <p data-lake-id="uba2a5bb8" id="uba2a5bb8" style="text-align: left"><span data-lake-id="ue29abe25" id="ue29abe25" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">ref</span></p></td>
     <td data-lake-id="u986f727d" id="u986f727d">
      <p data-lake-id="u65c2a100" id="u65c2a100" style="text-align: left"><em><span data-lake-id="ucee4d26c" id="ucee4d26c" class="lake-fontsize-9" style="color: rgb(153, 153, 153)">NULL</span></em></p></td>
    </tr>
    <tr data-lake-id="u8bf1b3a5" id="u8bf1b3a5">
     <td data-lake-id="u6480b924" id="u6480b924">
      <p data-lake-id="u96235bdc" id="u96235bdc" style="text-align: left"><strong><span data-lake-id="u4c498ba2" id="u4c498ba2" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">rows</span></strong></p></td>
     <td data-lake-id="u96631e6b" id="u96631e6b">
      <p data-lake-id="u3ad044dd" id="u3ad044dd" style="text-align: left"><strong><span data-lake-id="u16a66e98" id="u16a66e98" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">4133627</span></strong></p></td>
    </tr>
    <tr data-lake-id="uc540ffd1" id="uc540ffd1">
     <td data-lake-id="u9d3695f8" id="u9d3695f8">
      <p data-lake-id="u59fc9b29" id="u59fc9b29" style="text-align: left"><span data-lake-id="u6c66c7ce" id="u6c66c7ce" class="lake-fontsize-9" style="color: var(--table-row-hover-color,#333)">filtered</span></p></td>
     <td data-lake-id="ua77ea091" id="ua77ea091">
      <p data-lake-id="u838be0ab" id="u838be0ab" style="text-align: left"><span data-lake-id="ub349359c" id="ub349359c" class="lake-fontsize-9" style="color: var(--table-row-hover-color,#333)">0.19</span></p></td>
    </tr>
    <tr data-lake-id="u037fb1d8" id="u037fb1d8">
     <td data-lake-id="u6ed96345" id="u6ed96345">
      <p data-lake-id="u8c026ce3" id="u8c026ce3" style="text-align: left"><strong><span data-lake-id="uba731ea9" id="uba731ea9" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">Extra</span></strong></p></td>
     <td data-lake-id="u6e8e91a8" id="u6e8e91a8">
      <p data-lake-id="uc30b808a" id="uc30b808a" style="text-align: left"><strong><span data-lake-id="u1f0582a0" id="u1f0582a0" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">Using where; Using index</span></strong></p></td>
    </tr>
   </tbody>
  </table>
  <p data-lake-id="u8e252247" id="u8e252247"><br></p>
  <p data-lake-id="u71eda3af" id="u71eda3af"><span data-lake-id="u453110ad" id="u453110ad">通过这个执行计划可以发现，type = index ，extra = Using where; Using index ，表示SQL因为不符合最左前缀匹配，而扫描了整颗索引树，故而很慢。</span></p>
  <p data-lake-id="ufe536fca" id="ufe536fca"><span data-lake-id="u6a427daa" id="u6a427daa">​</span><br></p>
  <p data-lake-id="ufc4c7123" id="ufc4c7123"><span data-lake-id="uf67527c0" id="uf67527c0">于是查看这张表的建表语句，确实存在subject_id_enum和product_type_enum字段的联合索引，但是这个字段并不是前导列：</span></p>
  <p data-lake-id="u2d7de217" id="u2d7de217"><span data-lake-id="u77ca6e37" id="u77ca6e37">​</span><br></p>
  <pre lang="java"><code>
idx_subject_product(subject_id,subject_id_enum,product_type)
</code></pre>
  <p data-lake-id="ubdc8f7e5" id="ubdc8f7e5"><br></p>
  <h3 data-lake-id="MwiWE" id="MwiWE"><span data-lake-id="u1c3b82b9" id="u1c3b82b9">问题解决</span></h3>
  <p data-lake-id="ua46493c8" id="ua46493c8"><br></p>
  <p data-lake-id="ud5a2a277" id="ud5a2a277"><span data-lake-id="u6df15f9c" id="u6df15f9c">定位到问题之后，那解决起来就很简单了，只需要增加正确的索引或者修改SQL就行了。于是修改表结构，增加新的索引：</span></p>
  <p data-lake-id="u77d5e077" id="u77d5e077"><span data-lake-id="u9daa3023" id="u9daa3023"> </span></p>
  <pre lang="java"><code>
ALTER TABLE `fraud_risk_case`
	ADD KEY `idx_subject_type_product_user` (`subject_id_enum`,`product_type_enum`,`buyer_id`,`seller_id`);
</code></pre>
  <p data-lake-id="uc3dcc87d" id="uc3dcc87d"><br></p>
  <p data-lake-id="u4bd49a83" id="u4bd49a83"><span data-lake-id="ubd48fee5" id="ubd48fee5">经过修改后，再执行以下执行计划：</span></p>
  <p data-lake-id="u0b41d81e" id="u0b41d81e"><span data-lake-id="u74123fb7" id="u74123fb7">​</span><br></p>
  <table data-lake-id="c7p6B" id="c7p6B" margin="true" class="lake-table" style="width: 500px">
   <colgroup>
    <col width="250">
    <col width="250">
   </colgroup>
   <tbody>
    <tr data-lake-id="u90276a18" id="u90276a18">
     <td data-lake-id="uf1e18521" id="uf1e18521">
      <p data-lake-id="uc26c27c3" id="uc26c27c3" style="text-align: left"><span data-lake-id="u191b2ce6" id="u191b2ce6" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">id</span></p></td>
     <td data-lake-id="uda55392a" id="uda55392a">
      <p data-lake-id="ubfe7d654" id="ubfe7d654" style="text-align: left"><span data-lake-id="u53c801e7" id="u53c801e7" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">1</span></p></td>
    </tr>
    <tr data-lake-id="ud1cc0c88" id="ud1cc0c88">
     <td data-lake-id="ucb597c63" id="ucb597c63">
      <p data-lake-id="u3e7e5098" id="u3e7e5098" style="text-align: left"><span data-lake-id="ue092a4f9" id="ue092a4f9" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">select_type</span></p></td>
     <td data-lake-id="uefe17f9c" id="uefe17f9c">
      <p data-lake-id="u7e8c48a1" id="u7e8c48a1" style="text-align: left"><span data-lake-id="uea2b24f7" id="uea2b24f7" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">SIMPLE</span></p></td>
    </tr>
    <tr data-lake-id="u52f770a0" id="u52f770a0">
     <td data-lake-id="u2f3b2880" id="u2f3b2880">
      <p data-lake-id="ue1bb2098" id="ue1bb2098" style="text-align: left"><span data-lake-id="u75c8ed15" id="u75c8ed15" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">table</span></p></td>
     <td data-lake-id="u8d2cf2f1" id="u8d2cf2f1">
      <p data-lake-id="ud4476388" id="ud4476388" style="text-align: left"><span data-lake-id="u6ab325f8" id="u6ab325f8" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">fraud_risk_case</span></p></td>
    </tr>
    <tr data-lake-id="u98b6e21d" id="u98b6e21d">
     <td data-lake-id="uac59f391" id="uac59f391">
      <p data-lake-id="uad97037d" id="uad97037d" style="text-align: left"><span data-lake-id="u1c8d7dd7" id="u1c8d7dd7" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">partitions</span></p></td>
     <td data-lake-id="ua5309833" id="ua5309833">
      <p data-lake-id="u6fad6aa8" id="u6fad6aa8" style="text-align: left"><em><span data-lake-id="ub9a5672a" id="ub9a5672a" class="lake-fontsize-9" style="color: rgb(153, 153, 153)">NULL</span></em></p></td>
    </tr>
    <tr data-lake-id="u8174b8ac" id="u8174b8ac">
     <td data-lake-id="u6d2c5fee" id="u6d2c5fee">
      <p data-lake-id="u4e514d08" id="u4e514d08" style="text-align: left"><strong><span data-lake-id="u91c91ca1" id="u91c91ca1" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">type</span></strong></p></td>
     <td data-lake-id="ue23ea295" id="ue23ea295">
      <p data-lake-id="uaa340e1b" id="uaa340e1b" style="text-align: left"><strong><span data-lake-id="u125dddef" id="u125dddef" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">ref</span></strong></p></td>
    </tr>
    <tr data-lake-id="uecd6b431" id="uecd6b431">
     <td data-lake-id="u8dceccd5" id="u8dceccd5">
      <p data-lake-id="u73ccc0a7" id="u73ccc0a7" style="text-align: left"><span data-lake-id="u3b91ce8b" id="u3b91ce8b" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">possible_keys</span></p></td>
     <td data-lake-id="ua8158d70" id="ua8158d70">
      <p data-lake-id="u96b40431" id="u96b40431" style="text-align: left"><span data-lake-id="u979970e2" id="u979970e2" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">idx_byr_slr_product,idx_subject_type_product_user</span></p></td>
    </tr>
    <tr data-lake-id="ud63437fe" id="ud63437fe">
     <td data-lake-id="ubd7584c0" id="ubd7584c0">
      <p data-lake-id="ue909c8bc" id="ue909c8bc" style="text-align: left"><span data-lake-id="ub43689d3" id="ub43689d3" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">key</span></p></td>
     <td data-lake-id="uc2dc9295" id="uc2dc9295">
      <p data-lake-id="uc44048c3" id="uc44048c3" style="text-align: left"><strong><span data-lake-id="u383bff31" id="u383bff31" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">idx_subject_type_product_user</span></strong></p></td>
    </tr>
    <tr data-lake-id="u5e4f5fde" id="u5e4f5fde">
     <td data-lake-id="u93381202" id="u93381202">
      <p data-lake-id="u5bf76fe2" id="u5bf76fe2" style="text-align: left"><span data-lake-id="u97ab550e" id="u97ab550e" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">key_len</span></p></td>
     <td data-lake-id="u6bdb2766" id="u6bdb2766">
      <p data-lake-id="u6d93ccb9" id="u6d93ccb9" style="text-align: left"><span data-lake-id="ud9a14ad0" id="ud9a14ad0" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">516</span></p></td>
    </tr>
    <tr data-lake-id="u3598471c" id="u3598471c">
     <td data-lake-id="u1d6eecc2" id="u1d6eecc2">
      <p data-lake-id="ud1fd041b" id="ud1fd041b" style="text-align: left"><span data-lake-id="u37ea5f69" id="u37ea5f69" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">ref</span></p></td>
     <td data-lake-id="u3c2a09a9" id="u3c2a09a9">
      <p data-lake-id="ufb983d30" id="ufb983d30" style="text-align: left"><span data-lake-id="u5e8a45d5" id="u5e8a45d5" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">const,const</span></p></td>
    </tr>
    <tr data-lake-id="ua45a5c65" id="ua45a5c65">
     <td data-lake-id="u61adb9c1" id="u61adb9c1">
      <p data-lake-id="u6b3993ea" id="u6b3993ea" style="text-align: left"><span data-lake-id="u1034dd38" id="u1034dd38" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">rows</span></p></td>
     <td data-lake-id="u9f7f08ee" id="u9f7f08ee">
      <p data-lake-id="ubfd9ed5b" id="ubfd9ed5b" style="text-align: left"><span data-lake-id="u9e347320" id="u9e347320" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">1</span></p></td>
    </tr>
    <tr data-lake-id="ucaf4d316" id="ucaf4d316">
     <td data-lake-id="u845630f0" id="u845630f0">
      <p data-lake-id="u19a6c048" id="u19a6c048" style="text-align: left"><span data-lake-id="u6a4d67e2" id="u6a4d67e2" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">filtered</span></p></td>
     <td data-lake-id="ufb7ba0fa" id="ufb7ba0fa">
      <p data-lake-id="u1fe10131" id="u1fe10131" style="text-align: left"><span data-lake-id="u4b4e135a" id="u4b4e135a" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">19.00</span></p></td>
    </tr>
    <tr data-lake-id="ucd2db362" id="ucd2db362">
     <td data-lake-id="u2bcbc4eb" id="u2bcbc4eb">
      <p data-lake-id="u4602c12c" id="u4602c12c" style="text-align: left"><span data-lake-id="u4294873f" id="u4294873f" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">Extra</span></p></td>
     <td data-lake-id="ud517b81d" id="ud517b81d">
      <p data-lake-id="udaa03e5b" id="udaa03e5b" style="text-align: left"><strong><span data-lake-id="u13cb9598" id="u13cb9598" class="lake-fontsize-9" style="color: var(--table-row-color,#333)">Using where; Using index; Using temporary; Using filesort</span></strong></p></td>
    </tr>
   </tbody>
  </table>
  <p data-lake-id="uf456cd53" id="uf456cd53"><span data-lake-id="u5dad7d7f" id="u5dad7d7f">​</span><br></p>
  <p data-lake-id="u7ea4028e" id="u7ea4028e"><span data-lake-id="u634ea9bb" id="u634ea9bb">可以看到，type=ref，说明用到了普通索引，你并且rows也变少了，整个SQL大大提升了查询速度，任务失败的问题得到解决。</span></p>
  <p data-lake-id="u0c397d8c" id="u0c397d8c"><span data-lake-id="ue78bf4c6" id="ue78bf4c6">​</span><br></p>
  <p data-lake-id="uec9997ae" id="uec9997ae"><img src="https://cdn.nlark.com/yuque/0/2023/png/5378072/1682305893774-e6a8ad32-4687-4a5c-8925-491cb931e06d.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_51%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="u92a62f5c" id="u92a62f5c"><br></p>
  <p data-lake-id="ue39798c1" id="ue39798c1"><br></p>
  <p data-lake-id="u03a6d23e" id="u03a6d23e"><br></p>
  <p data-lake-id="ue2649f81" id="ue2649f81"><span data-lake-id="u4a0b5e77" id="u4a0b5e77">参考：</span></p>
  <p data-lake-id="u8b124da5" id="u8b124da5"><span data-lake-id="u4484b3f6" id="u4484b3f6">​</span><br></p>
 </body>
</html>